
namespace ActivUFRJ.Classes.Artefato
{
    public class Artefato
    {

        public Artefato()
        {

        }

        public Artefato(int idArtefato)
        {
            this.ID = idArtefato;
            DBArtefato dbArtefato = new DBArtefato();
            dbArtefato.CarregarArtefato(this);
            dbArtefato.Dispose();
        }

        // carrega o artefato a partir da querystring
        public Artefato(string strArtefato)
        {
            try
            {
                int idArtefato = System.Convert.ToInt32(strArtefato);

                DBArtefato dbArtefato = new DBArtefato();
                this.ID = idArtefato;

                dbArtefato.CarregarArtefato(this);
                dbArtefato.Dispose();
            }
            catch 
            { 

            }
        }

        private int id;
        private string nome;
        private string descricao;
        private System.DateTime dataRegistro;
        private string linkImagem;
        private string linkDownload;
        private Status status;
        private Usuario.Usuario autor;
        private Comunidade.Comunidade comunidade;
        private Formato formato;
        private TipoCategorico tipoCategorico;
        private string[] palavrasChave;
        private Geral.AreaInteresse categoria;

        public int ID
        {
            get { return id; }
            set { id = value; }
        }

        public string Nome
        {
            get { return nome; }
            set { nome = value; }
        }

        public string Descricao
        {
            get { return descricao; }
            set { descricao = value; }
        }

        public System.DateTime DataRegistro
        {
            get { return dataRegistro; }
            set { dataRegistro = value; }
        }

        public string LinkImagem
        {
            get { return linkImagem; }
            set { linkImagem = value; }
        }

        public string LinkDownload
        {
            get { return linkDownload; }
            set { linkDownload = value; }
        }

        public Status Status
        {
            get { return status; }
            set { status = value; }
        }


        public Usuario.Usuario Autor
        {
            get { return autor; }
            set { autor = value; }
        }

        public string[] PalavrasChave
        {
            get { return palavrasChave; }
            set { palavrasChave = value; }
        }

        public TipoCategorico TipoCategorico
        {
            get { return tipoCategorico; }
            set { tipoCategorico = value; }
        }

        public Formato Formato
        {
            get { return formato; }
            set { formato = value; }
        }

        public Comunidade.Comunidade Comunidade
        {
            get { return comunidade; }
            set { comunidade = value; }
        }


        public bool SalvarDados()
        {
            DBArtefato dbArtefato = new DBArtefato();
            return dbArtefato.SalvarDados(this);
        }

        public Geral.AreaInteresse Categoria
        {
            get { return categoria; }
            set { categoria = value; }
        }


        public void RegistrarVisita(ActivUFRJ.Classes.Usuario.Usuario usuario)
        {
            DBArtefato dbArtefato = new DBArtefato();
            dbArtefato.RegistrarVisita(this, usuario);
        }

    }
}
